import Vue from 'vue'
//引入vuex的写法
//1、引入库
import Vuex from 'vuex'
//2、安装
Vue.use(Vuex)
//3、创建仓库示例
export default new Vuex.Store({
    //规定严格模式
    strict: true,
    //配置对象
    //state 储存数据

    modules: {
        //每个属性都是一个模块对象
        user: {
            // 希望提高封闭性，独立使用这个模块
            //只写 namespaced: true会报错
            //解决方法：调用时带上   模块名/   即可
            namespaced: true,
            state: {
                token: 666,
                school: {
                    name: '吉山'
                }
            },
            mutations: {
                setToken(state) {
                    state.token = 777
                }
            }
        },
        setting: {
            state: {
                name: 'vuex 演示'
            },
            mutations: {
                setName(state) {
                    state.name = '我的测试页面'
                }
            }
        }

    },
    //一般不会将getters写到模块内
    // 因为在模块内如果要读取state每次都要点模块名点字段名
    // 写在modules 外部的getters有一个特性是他的state可以得到所有模块的数据
    getters: {
        token: state => state.user.token,
        name: state => state.setting.name
    }

})
